Stat KUNG-FU
big data
&
data mining

@maureviv

06 abril, 2018

Diapositivas  

  big data (80%…)

¿Qué es ‘big data’?

  • Lectura y escritura de datos a gran escala, definidos por:

    • Volumen (Gb, Tb).
    • Variedad / Complejidad.
    • Velocidad (streaming).

¿Qué es ‘big data’?

  data mining (80%…)

Minería de datos

  • Varias técnicas que ayudan a buscar patrones en los datos.

  • Casi siempre se pueden automatizar.

  • Comienza con la extracción de una base de datos.

  • Veremos las funciones más básicas.
    [que no triviales]

Minería de datos

Limpia

Explora

Resume

Dibuja

Analiza

1. Limpieza

En general:

  • Copia de seguridad!
  • Primera columna con ID anónimo (alfanumérico).
  • Confidencialidad. Ética.
  • Documenta (nueva pestaña con claves).

¿Datos en Hoja de cálculo?

¿Datos en Hoja de cálculo?

¿Datos en Otros formatos?

Seleccionar columnas: (“select”)

  • SQL:

    • SELECT
  • Scala/Spark (permite SQL)

    • .select
  • R (dplyr)

    • select
  • Python/Pandas

    • .loc

¿Datos en Otros formatos?

Seleccionar filas: (“filter”)

  • SQL:

    • FILTER
  • Scala/Spark (permite SQL)

    • .filter
  • R (dplyr)

    • filter
  • Python/Pandas

    • .query

¿Datos en Otros formatos?

Ordenar columnas: (“sort”)

  • SQL:

    • ORDER BY
  • Scala/Spark (permite SQL)

    • .orderBy
  • R (dplyr)

    • arrange
  • Python/Pandas

    • .sort_values

Formato ‘wide’ a ‘long’: (“unpivot”)

  • SQL:

    • UNPIVOT
  • Scala/Spark (permite SQL)

    • .groupBy().agg()
  • R

    • reshape::melt
    • tidyr::gather
  • Python/Pandas

    • .melt

Formato ‘long’ a ‘wide’: (“pivot”)

  • SQL:

    • PIVOT
  • Scala/Spark (permite SQL)

    • pivot_table
  • R

    • reshape::cast
    • tidyr::spread
  • Python/Pandas

    • .pivot

2. Explora

Dos tipos de datos:

  • Discretos
  • Numéricos

Se procesan por separado

Se pueden analizar por separado, o conjuntamente.

  • ¿Cuáles de mis variables son continuas?
  • ¿Cuáles no?

Examina todas ellas.  

3. Resume

Datos numéricos?

Variable Media Mediana Desv. Standard IQR
Edad (años) 68 71 11.4 [62 - 76]
Temperatura (°C) 36.8 36 1.5 [35.5 - 38]


  • Paramétricas: media + desv. estándard.
  • No paramétricas: mediana + rango intercuartílico (IQR).
  • Tests de normalidad Lilliefors (Shapiro-Wilk), Kolmogorov-Smirnov

Paramétrica vs. no paramétrica:

Variable normal (media = 1, SD = 1)

Paramétrica vs. no paramétrica:

Variable normal (media = 4, SD = 1)

Paramétrica vs. no paramétrica:

Variable normal (media = 4, SD = 0.5)

Paramétrica vs. no paramétrica:

Variable normal (media = 1, SD = 2)

Paramétrica vs. no paramétrica:

Variable No paramétrica real

Paramétrica vs. no paramétrica:

Variable Simulada

3. Resume

Datos discretos?

  • Tabla de frecuencias y porcentajes.
  • Tablas cruzadas.

Tablas

Factor Valor Frecuencia Porcentaje %
Factor A 0 312 78.4
1 86 21.6

3. Resume

Datos discretos?

Tablas cruzadas

Tabla 2x2 Mujer Hombre
Hyundai 206 180
Ford 106 152
Volkswagen 41 36
Volvo 8 12

Map-Reduce & Split-apply-combine

Map

  • Aplicar (apply) una función a cada elemento de un vector (p.ej cada fila de una columna)

  • Puede ser sobre todo el vector o sobre partes del mismo.

Reduce

  • Colapsa los valores de un vector en un único valor.

Map-Reduce & Split-apply-combine

Map

  • SQL:

    • for each
  • Scala/Spark (permite SQL)

    • .map
  • R

    • map, apply
  • Python/Pandas

    • for

Map-Reduce & Split-apply-combine

Reduce

  • SQL:

    • GROUP BY –> COUNT
  • Scala/Spark (permite SQL)

    • .reduce –> .countByValue
  • R (dplyr)

    • summarise –> count
  • Python/Pandas

    • .cumcount

Map-Reduce & Split-apply-combine

Split-apply-combine

  • SQL:

    • GROUP BY –> COUNT
  • Scala/Spark (permite SQL)

    • .groupBy –> .agg
  • R (dplyr)

    • group_by –> count
  • Python/Pandas

    • .groupby

4. Dibuja tus datos

Numéricos | Histogramas

4. Dibuja tus datos

Numéricos | Densidad

4. Dibuja tus datos

Factores | Barras

4. Dibuja tus datos

Factores | Barras

4. Dibuja tus datos

Factores | Barras

4. Dibuja tus datos

Factores | Barras

4. Dibuja tus datos

Factores | Barras

4. Dibuja tus datos

Factores | Barras

  data mining (20%…)

5. Analiza tus datos

Factores * Factores

  • Tablas cruzadas

  • Chi-Cuadrado: obs. independientes
    • Pearson.
    • Fisher, cuando N<5 en alguna celda!
  • Mc Nemar: obs. dependientes (“before & after”)

5. Analiza tus datos

5. Analiza tus datos

Factores (2 categorías) * Numéricas

  • Student’s t:
    • Datos “perfectos…”
    • No siempre somos como cervezas.
    • Test Normalidad: Shapiro-Wilk, Kolmogorov.
    • Test igualdad varianza: test Levene.
  • Wilcoxon, Mann-Whitney:
    • Datos no paramétricos = no utiliza parámetros.
    • Suma por pares de rangos.
    • Menos falsos positivos y falsos negativos!

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

Factores (>>2 categorías) * Numéricas

  • ANOVA:
    • Datos “perfectos…”
    • No siempre somos ratas de laboratorio.
    • Igualdad varianza: test Levene.
    • Ajuste múltiples comparaciones: test Tukey.
  • Kruskal-Wallis:
    • Datos no paramétricos = no utiliza parámetros.
    • Suma por pares de rangos.
    • Menos falsos positivos y falsos negativos!

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

Numéricas * Numéricas

  • Regresión lineal:
    • Datos normales, homocedásticos, independientes.
    • Homocedasticidad: test Levene.
  • Rho de Spearman, Tau de Kendall:
    • Datos no paramétricos. Por rangos.
    • Alternativa a regresión lineal.

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

5. Analiza tus datos

Regresión logística

  • Variable dependiente Binaria (binomial) o multinomial.

y = c + ax + bx + ...

  • Esta variable sigue la distr. de Bernoulli.
  • No paramétrica.

prob_infarto = c + 
  2.20 * edad + 
  1.8 * diabetes + ...

Stat KUNG-FU

Next …

Data Scientists hate her!

Watch this and learn how
get p-value less than 0.05
in just 10 days!